69.5 使用YAML配置外部属性
YAML是JSON的一个超集,可以非常方便的将外部配置以层次结构形式存储起来,比如:
spring:
application:
name: cruncher
datasource:
driverClassName: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost/test
server:
port: 9000
创建一个application.yml
文件,将它放到classpath的根目录下,并添加snakeyaml
依赖(Maven坐标为org.yaml:snakeyaml
,如果你使用spring-boot-starter
那就已经包含了)。一个YAML文件会被解析为一个Java Map<String,Object>
(和一个JSON对象类似),Spring Boot会平伸该map,这样它就只有1级深度,并且有period-separated的keys,跟人们在Java中经常使用的Properties
文件非常类似。
上面的YAML示例对应于下面的application.properties
文件:
spring.application.name=cruncher
spring.datasource.driverClassName=com.mysql.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost/test
server.port=9000
查看'Spring Boot特性'章节的Section 24.6, “Using YAML instead of Properties”可以获取更多关于YAML的信息。